Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Problemy z SDL


Rekomendowane odpowiedzi

Opublikowano

mam trochę problem z konfiguracja tego całego SDL.

 

mój kod wygląda tak:

#include <SDL.h>
SDL_Surface * ekran = NULL;
int main( int argc, char * args[] )
{
    SDL_Surface* hello =NULL;
    SDL_Surface* screen = NULL;
    SDL_Init(SDL_INIT_EVERYTHING);
    screen = SDL_SetVideoMode(640,480,32, SDL_SWSURFACE);

    hello = SDL_LoadBMP("hello.bmp");
    SDL_BlitSurface(hello,NULL,screen,NULL);
    SDL_Flip(screen);
    SDL_Delay(2000);
    SDL_FreeSurface(hello);
    SDL_QUIT();
    return 0;
}

wiec jak mam #include<SDL.h> to moje bledy sa takie:

SDL_SetVideoMode was not declared in this scope
SDL_Flip was not declared in this scope
'(SDL_EventType)256u' cannot be used as function    << to jest do SDL_QUIT();

A jak zmienie include na

#include <SDL/SDL.h> to mi pisze No Such file or directory.

 

sprawdzałem czy jest wszystko dobrze zlinkowane itp. i tak jest szukałem na necie ale niczego sie nie doszukałem, nie wiem o co zbytnio chodzi.

<>

Opublikowano

Zakładam, że być może kompilujesz kod spod SDLa 1.0/1.2 na SDL 2.0. Tam do tworzenia okna jest funkcja SDL_CreateWindow(), a do okna struktura SDL_Window. Znajdź inne kody, albo zmień bibliotekę na starszą.


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Opublikowano

Zakładam, że być może kompilujesz kod spod SDLa 1.0/1.2 na SDL 2.0. Tam do tworzenia okna jest funkcja SDL_CreateWindow(), a do okna struktura SDL_Window. Znajdź inne kody, albo zmień bibliotekę na starszą.

racja, problem rozwiazany ;)

a moze wiesz czemu niektorzy mowia ze powinno sie uzywac SDL/SDL.h zamiast SDL.h?

<>

Opublikowano

Być może mają ścieżkę do kompilatora ścieżkę plików nagłówkowych folderu include, która jest tuż przed folderem SDL.


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Opublikowano

k, a tak zeby nie tworzyc niepotrzebnie kolejnego tematu to jak sądzicie czemu ten kod nie wyswietla mi nic na ekranie? Nie pisze że jest błąd zdj. załadowane poprawnie ale takjakby nie aktualizuje mi mojego okienka (przynajmniej tak sądze), ucze się z LazyFoo, jak przekopiowalem ich kod to działało ale ja nie moge dostrzec błedu.

 

 

#include <SDL.h>
#include <iostream>
using namespace std;
const int SCREEN_WIDTH =640;
const int SCREEN_HEIGHT = 480;
SDL_Window* gWindow=NULL;
SDL_Surface* gScreenSurface=NULL;
SDL_Surface* gHelloWorld=NULL;
bool init();
bool loadMedia();
void close();

int main( int argc, char * args[] )
{
    if(!init())
    {
        cout << "Nie udalo sie zainicjablabla"<<endl;
    }
    else
    {
        if(!loadMedia())
        {
            cout << "Nie udalo sie wczytasc media" << endl;
        }
        else
        {
            SDL_BlitSurface( gHelloWorld, NULL, gScreenSurface, NULL );
            SDL_UpdateWindowSurface(gWindow);
            SDL_Delay(3000);
        }
    }
    close();
    return 0;


}

bool init()
{
    bool succes=true;
    if(SDL_Init(SDL_INIT_VIDEO)<0)
    {
        cout << "Couldnt initalize. Error!" << SDL_GetError() <<endl;
        succes=false;
    }
    else
    {
        //tworzy okienko
        gWindow=SDL_CreateWindow("SDL Tutorial", SDL_WINDOWPOS_UNDEFINED,SDL_WINDOWPOS_UNDEFINED,SCREEN_WIDTH,SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
        if(gWindow=NULL)
        {
            cout << "Nie udalo sie zrobic okienka" << SDL_GetError() << endl;
            succes=false;
        }
        else
        {
            gScreenSurface=SDL_GetWindowSurface(gWindow);
        }
    }
    return succes;
}
bool loadMedia()
{
    bool succes = true;
//Load splash image

    gHelloWorld=SDL_LoadBMP("HelloWorld.bmp");
    if(gHelloWorld==NULL)
    {
        cout << "Nie udalo sie zalodowac zdjecia " << SDL_GetError()<<endl;
        succes = false;
    }
    return succes;
}
void close()
{
    SDL_FreeSurface(gHelloWorld);
    gHelloWorld=NULL;
    SDL_DestroyWindow(gWindow);
    gWindow=NULL;
    SDL_Quit();
}

 

Czyli po prostu mi nie wyświetla zdjęcia ale okienko sie wczytuje

<>

Opublikowano
        if(gWindow=NULL)

Chyba nic nie muszę dodawać :).

 

Wiem, że takie błędy lubią napsuć sporo krwi.


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...